// 第一步引入组件
import axios from 'axios'
import { Message } from 'element-ui'
import qs from 'qs'
import local from '../utils/local.js'
import { message } from 'element-ui'
// 2.0 设置默认请求地址
axios.defaults.baseURL = 'http://127.0.0.1:5000'
// 设置超时处理
axios.defaults.timeout = 5000

// 设置拦截器
axios.interceptors.request.use(config => {
    // 所有发的请求都会先执行这个函数
    // 如果登录之后的请求都要把token带到 headers中
    const token = local.get('token')
    if (token) {
        // config.headers.Authorization = token    也可以的
        config.headers.Authorization = token
    }
    return config
})

// 设置响应器
axios.interceptors.response.use(res => {
    // 所有发的请求都会先执行这个函数
    // 如果登录之后的请求都要把token带到 headers中
    const { code, msg } = res.data
    if (code !== undefined && msg !== undefined) {
        if (code === 0 || code === '00') {
            Message({
                message: msg,
                type: 'success'
            })
        } else {
            Message({
                message: msg,
                type: 'error'
            })
        }
    }
    return res
})

// 3.把请求导出去
export default {
    get(url, params = {}) {
        return new Promise((resolve, reject) => {
            axios.get(url, { params }).then((res) => {
                resolve(res.data)
            }).catch((err) => {
                reject(err)
            })
        })

    },
    post(url, params) {
        return new Promise((resolve, reject) => {
            axios.post(url, qs.stringify(params)).then(res => {
                resolve(res.data)
            }).catch(err => {
                reject(err)
            })
        })
    }
}